package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import javax.validation.constraints.NotNull;
import lombok.Data;
import com.wicket.okrbff.common.annotations.TreeType;
import java.util.Objects;
    
    
    /**
     * @desc BffSetConstructionTaskDto
     * @使用场景
     */
    @Data
    public class BffSetConstructionTaskDto  implements Serializable {
      
    /**
     * 目标分类ID 
     */
    @TreeType("id")
@ApiModelProperty("目标分类ID")
    private String	 targetCategoryId;

    /**
     * 归属父级目标分类ID 
     */
    @TreeType("pid")
@ApiModelProperty("归属父级目标分类ID")
    private String	 parentTtargetCategoryId;

    /**
     * 被评对象目标周期ID 
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    /**
     * 目标分类标识 
     */
    @ApiModelProperty("目标分类标识")
    private String	 targetCategoryCode;

    /**
     * 目标分类编号 
     */
    @ApiModelProperty("目标分类编号")
    private String	 targetCategoryNumber;

    /**
     * 目标分类名称 
     */
    @ApiModelProperty("目标分类名称")
    private String	 targetCategoryName;

    /**
     * 目标分类简介 
     */
    @ApiModelProperty("目标分类简介")
    private String	 targetCategoryDescribe;

    /**
     * 目标分类备注 
     */
    @ApiModelProperty("目标分类备注")
    private String	 targetCategoryRemarks;

    /**
     * 目标分类是否末级 TRUE:是 FALSE:否
     */
    @ApiModelProperty("目标分类是否末级")
    private String	 isLast;

    /**
     * 冗余一级目标分类ID 
     */
    @ApiModelProperty("冗余一级目标分类ID")
    private String	 rootTargetCategoryId;

    /**
     * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式类型编码")
    private String	 periodicModeTypeCode;

    /**
     * 冗余目标ID 
     */
    @ApiModelProperty("冗余目标ID")
    private String	 targetId;

    /**
     * 层级 
     */
    @ApiModelProperty("层级")
    private Long	 levelNumber;

    /**
     * 是否已完成 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已完成")
    private String	 isComplete;

    /**
     * 权重分值 
     */
    @ApiModelProperty("权重分值")
    private Double	 weightScore;

    /**
     * 权重 
     */
    @ApiModelProperty("权重")
    private Double	 weightValue;

    /**
     * 虚拟组织下部门ID 
     */
    @ApiModelProperty("牵头部门ID")
    private String	 deptId;

    /**
     * 组织内部门身份名称 
     */
    @ApiModelProperty("牵头部门身份")
    private String	 virtualOrgDeptStatus;

    /**
     * 部门简称 
     */
    @ApiModelProperty("牵头部门简称")
    private String	 deptShortName;

    /**
     * 责任人个人账号ID 
     */
    @ApiModelProperty("责任人个人账号ID")
    private String	 personLiableUserId;

    /**
     * 责任人职务名称 
     */
    @ApiModelProperty("责任人职务名称")
    private String	 personLiableName;

    /**
     * 责任人真实姓名 
     */
    @ApiModelProperty("责任人真实姓名")
    private String	 personLiableIdCardName;

    /**
     * 责任人昵称 
     */
    @ApiModelProperty("责任人昵称")
    private String	 personLiableNickName;

    /**
     * 分管领导个人账号ID 
     */
    @ApiModelProperty("分管领导个人账号ID")
    private String	 deptLeaderUserId;

    /**
     * 分管领导职务名称 
     */
    @ApiModelProperty("分管领导职务名称")
    private String	 deptLeaderPostName;

    /**
     * 分管领导真实姓名 
     */
    @ApiModelProperty("分管领导真实姓名")
    private String	 deptLeaderIdCardName;

    /**
     * 分管领导昵称 
     */
    @ApiModelProperty("分管领导昵称")
    private String	 deptLeaderNickName;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String	 subjectLifeCycle;
/**
     * 归属父级目标分类名称 
     */
    @ApiModelProperty("归属父级目标分类名称")
    private String	 parentTargetCategoryName;
/**
     * 实时得分 
     */
    @ApiModelProperty("实时得分")
    private String	 realTimeScore;

    /**
     * 达成度 
     */
    @ApiModelProperty("达成度")
    private Long	 reach;
/**
     * 排序 
     */
    @ApiModelProperty("排序")
    private Long	 orderNumber;

    /**
     * 部门排序 
     */
    @ApiModelProperty("部门排序")
    private Long	 dutyBodyOrderNum;

    /**
     * 个人排序 
     */
    @ApiModelProperty("个人排序")
    private Long	 personalOrderNumber;

    /**
     * 权重排序 
     */
    @ApiModelProperty("权重排序")
    private Long	 weightOrderNumber;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;

    /**
     * 操作时间 
     */
    @ApiModelProperty("操作时间")
    private Date	 operateTime;
/**
     * 是否开启预算 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启预算")
    private String	 isUseBudget;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffSetConstructionTaskDto that = (BffSetConstructionTaskDto) o;
      return  targetCategoryId == that.targetCategoryId&&parentTtargetCategoryId == that.parentTtargetCategoryId&&evaObjTargetCycleId == that.evaObjTargetCycleId&&targetCategoryCode == that.targetCategoryCode&&targetCategoryNumber == that.targetCategoryNumber&&targetCategoryName == that.targetCategoryName&&targetCategoryDescribe == that.targetCategoryDescribe&&targetCategoryRemarks == that.targetCategoryRemarks&&isLast == that.isLast&&rootTargetCategoryId == that.rootTargetCategoryId&&periodicModeTypeCode == that.periodicModeTypeCode&&targetId == that.targetId&&levelNumber == that.levelNumber&&isComplete == that.isComplete&&weightScore == that.weightScore&&weightValue == that.weightValue&&deptId == that.deptId&&virtualOrgDeptStatus == that.virtualOrgDeptStatus&&deptShortName == that.deptShortName&&personLiableUserId == that.personLiableUserId&&personLiableName == that.personLiableName&&personLiableIdCardName == that.personLiableIdCardName&&personLiableNickName == that.personLiableNickName&&deptLeaderUserId == that.deptLeaderUserId&&deptLeaderPostName == that.deptLeaderPostName&&deptLeaderIdCardName == that.deptLeaderIdCardName&&deptLeaderNickName == that.deptLeaderNickName&&subjectLifeCycle == that.subjectLifeCycle&&parentTargetCategoryName == that.parentTargetCategoryName&&realTimeScore == that.realTimeScore&&reach == that.reach&&orderNumber == that.orderNumber&&dutyBodyOrderNum == that.dutyBodyOrderNum&&personalOrderNumber == that.personalOrderNumber&&weightOrderNumber == that.weightOrderNumber&&createTime == that.createTime&&operateTime == that.operateTime&&isUseBudget == that.isUseBudget;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), targetCategoryId,parentTtargetCategoryId,evaObjTargetCycleId,targetCategoryCode,targetCategoryNumber,targetCategoryName,targetCategoryDescribe,targetCategoryRemarks,isLast,rootTargetCategoryId,periodicModeTypeCode,targetId,levelNumber,isComplete,weightScore,weightValue,deptId,virtualOrgDeptStatus,deptShortName,personLiableUserId,personLiableName,personLiableIdCardName,personLiableNickName,deptLeaderUserId,deptLeaderPostName,deptLeaderIdCardName,deptLeaderNickName,subjectLifeCycle,parentTargetCategoryName,realTimeScore,reach,orderNumber,dutyBodyOrderNum,personalOrderNumber,weightOrderNumber,createTime,operateTime,isUseBudget);
    }
    
      

    }
   